package com.company.sendemo.basics.zzInterview.write;


import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;

public class DemoThirteen {
    /**
     * 实现一个方法，能够生成一个随机字符串数组，这些字母和字符串必须是不一样的，每个字符串由字母和数字组成，方法输入参数有两个
     * - count：字符串数组（无默认值）
     * - Str_length：字符串长度，默认值为10
     */
    //每个字符串由字母和数字组成，将字母和数字存入一个数组
    public static void main(String[] args) {

        System.out.println(rd(30, 10));
    }

    public static void charAll(ArrayList a) {
        for (char i = 'a'; i <= 'z'; i++) {
            a.add(i);
        }
        for (char i = 'A'; i <= 'Z'; i++) {
            a.add(i);
        }
        for (char i = '0'; i <= '9'; i++) {
            a.add(i);
        }

    }

    //set是不可重复的
    //Count字符串数组,Str_length字符串长度
    public static List<String> rd(int Count, int Str_length) {
        ArrayList<String> list1 = new ArrayList<String>();
        //字母和数字组成
        ArrayList a = new ArrayList();
        charAll(a);
        System.out.println(a);
        //set
        //随机获得元素
        for (int i = 1; i <= Count; i++) {
            StringBuffer s1 = new StringBuffer();
            //在a.size()中获取随机数
            int a1 = (int) (Math.random() * a.size());
            //获取到的数，存到数组中
            s1.append(a.get(a1));
            //Str_length字符串长度够了就生成字符串，存到s2数组里面
            Iterator<String> iterator = list1.iterator();
            while (iterator.hasNext()){
                if (iterator.next()==s1.toString()){
                    list1.add(s1.toString()+"1");
                }
                list1.add(s1.toString());
            }

            if (list1.size() == Str_length) {
                //生成字符串
                break;
            }
        }
        return list1;
    }

}
